package org.dromara.xxmj.domain.vo;

import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.dromara.xxmj.domain.CourseVideo;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 课程视频视图对象
 *
 * @author Vincent
 */
@Data
@AutoMapper(target = CourseVideo.class)
@Schema(description = "课程视频视图对象")
public class CourseVideoVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 视频ID
     */
    @Schema(description = "视频ID")
    private Long id;

    /**
     * 课程ID
     */
    @Schema(description = "课程ID")
    private Long courseId;

    /**
     * 章节ID
     */
    @Schema(description = "章节ID")
    private Long chapterId;

    /**
     * 视频标题
     */
    @Schema(description = "视频标题")
    private String title;

    /**
     * 视频地址
     */
    @Schema(description = "视频地址")
    private String url;

    /**
     * 视频时长（秒）
     */
    @Schema(description = "视频时长（秒）")
    private Integer duration;

    /**
     * 排序号
     */
    @Schema(description = "排序号")
    private Integer sort;

    /**
     * 是否免费（0免费 1收费）
     */
    @Schema(description = "是否免费")
    private String isFree;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createTime;

    /**
     * 学习进度
     */
    @Schema(description = "学习进度（百分比）")
    private Integer progress;

    /**
     * 是否已学习完成
     */
    @Schema(description = "是否已学习完成")
    private Boolean completed;

} 